#ifndef SERIALMANAGER_H
#define SERIALMANAGER_H

#include <QObject>
#include <QSerialPort>

class SerialManager : public QObject
{
    Q_OBJECT

public:

    // 单例访问接口
    static SerialManager* instance();

    // 打开串口
    bool openPort(const QString &portName, int baudRate);

    // 关闭串口
    void closePort();

    // 发送数据
    void sendData(const QByteArray &data);

signals:
    // 错误发生时触发
    void errorOccurred(const QString &error);

    // 数据接收信号
    void dataReceived(const QByteArray &data);

private:

    // 私有构造函数
    explicit SerialManager(QObject *parent = nullptr);

    QSerialPort *serial;

    // 单例指针
    static SerialManager *m_instance;

};

#endif // SERIALMANAGER_H
